package biblioteca.gui;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
import biblioteca.base.*;
import biblioteca.dados.*;
import biblioteca.exception.ExceptionCpfCadastrado;
import biblioteca.exception.ExceptionNenhumCadastrado;
import biblioteca.exception.ExecptionEntradaInvalida;

/**@author Priscila Gabriele
 * @author Thays Silva
 *
 */


public class Sistema {

	RepositorioUsuarioArquivo usuario = new RepositorioUsuarioArquivo();
	RepositorioLivroArquivo listaLivro = new RepositorioLivroArquivo();


	public Sistema(){
	}

public boolean isVazio(){
	boolean retorno = false;
	if ((usuario.verificaUsuario()).isEmpty()){
		retorno =true;
	}
	return retorno;
}
	public boolean inicializa0(String nome, String cpfMestre, String endereco, String email, String telefone, String senha) throws ExceptionCpfCadastrado, IOException{
			boolean retorno = usuario.cadastroUsuario(1, nome, cpfMestre, endereco, email, telefone, senha);		
			return retorno;
	}
	public boolean inicializa(String cpfMestre, String senha) throws ExceptionNenhumCadastrado, IOException{
		boolean retorno= usuario.login(cpfMestre, senha);	 
		return retorno;
	}

	public void cadastraU(int key,String nome, String cpf, String endereco, String email, String telefone, String senha) throws ExceptionCpfCadastrado, IOException{
		usuario.cadastroUsuario(key, nome, cpf, endereco, email, telefone, senha);
	}

	public void alteraU(String cpf3, int chaveAtualiza, String altera) throws ExceptionNenhumCadastrado, IOException{
		usuario.atualizarUsuario(cpf3, chaveAtualiza, altera);
	}

	public ArrayList<String> vizualizaU(String cpf) throws ExceptionNenhumCadastrado, IOException{
		return usuario.vizualizarUsuario(cpf);
	}

	public void removeU(String cpf) throws ExceptionNenhumCadastrado, IOException{
		usuario.removeUsuario(cpf);
	}
	public void renovaL(String cpf, String nLivro) throws ExceptionNenhumCadastrado{
		Usuario usuarioLivro =  usuario.getUsuario(cpf);
		usuarioLivro.renovarLivro(nLivro);		
	}
 public void devolveL(String cpf, String nLivro) throws ExceptionNenhumCadastrado{
	 Usuario usuarioLivro1 =  usuario.getUsuario(cpf);
	 usuarioLivro1.devolverLivro(nLivro);	
 }

public long  verificaL(String cpf, String nLivro) throws ExceptionNenhumCadastrado{
	Usuario usuarioLivro =  usuario.getUsuario(cpf);
	long retorno= usuarioLivro.verificarAtraso(nLivro);
	return retorno;
}


public void emprestaL(String cpf, String nLivro) throws ExceptionNenhumCadastrado{
	Usuario usuarioLivro =  usuario.getUsuario(cpf);
	Livro nlivro = listaLivro.getLivro(nLivro);
	usuarioLivro.emprestimoLivro(nlivro);
}

public String visualizaL(){
	return listaLivro.str();
	}

public void cadastraL(String titulo, String autor,int quantidade,String assunto, String editora, int patrimonio) throws IOException{
	listaLivro.criarLivro(titulo, autor, quantidade, assunto, editora, patrimonio);
	}


}



